1. Technical Field
The present invention generally relates to remotely controlling data processing systems and in particular to employing a service processor within a remotely managed data processing system for remote control. Still more particularly, the present invention relates to employing a service processor to intercept video output and force mouse/keyboard input to a main processor through a connection to a remote console.
2. Description of the Related Art
With current computer systems, a desire exists to remotely manage one or more systems utilizing standard interconnections—such as a local area network (“LAN”) serial connection—and a remote console at which full keyboard and mouse control may be initiated to manipulate the remotely managed systems. Current designs and applications available for this purpose are varied in their abilities and in the areas which they can control. On some systems, the ability to remotely watch and control a managed system during the period of time between when the managed system is powered on until the operating system (OS) begins loading exists only through the use of video and keyboard interrupts for re-direction to a serial port. Additionally, applications such as PC Anywhere or Netfinity Director utilize the Distributed Command Architecture Framework (DCAF) to allow for remote console take-over of managed systems once the operating system is loaded and operational.
Even when combined, however, these two solutions are lacking in several areas. First, in order to remotely manage the system at any time during the system life, from the time of power on until the operating system is up and running and thereafter, the remote manager is required to initiate one set of protocols or functions during the Post On Self Test (POST) timeframe, then disconnect and re-establish the connection with the remote console once the operating system has loaded. This forces a drop of connection and a separate initiation for extended control.
Second, there remains a window in time—from the point at which the system is powered on until the operating system is up and running—during which the managed system cannot be remotely controlled. As illustrated in the system time line of FIG. 4, there exists a period of time between the end of the POST Console redirection and the point in time at which the operating system is up and running during which the operating system is loading its kernel and associated device drivers. During this period, when no remote monitoring or control is available under the combination of existing solutions described above, a large number of operating system errors occur. If a critical error occurs during this time period, the remote manager cannot get into the system to view the failing situation because the remote console is switching between remote management applications (i.e., the POST redirection utility has shut down and the remote console application has not yet started).
Third, the current designs require that the remote console include one set of utilities running on the native operating system of the remote console which understand how to communicate with the POST redirection code as well as a second set of utilities which understand how to communicate with the remote console (RC) application. In general, there exists no unified mechanism for a terminal operator to seamlessly—with one application—have fill remote control over the managed system from power on until shut down.
Lastly, there exists a requirement that the management applications which currently utilize remote control exists as a specific set of utilities resident on the remote console. Given that problems may occur with a system at anytime, the ability to remotely control a managed system from anyplace requires the managing individual to have a console with them at all times, with the appropriate software running. In order to allow the managing individual to move from system to system, the remote console should be operable without unique software running on the console.
It would be desirable, therefore, to allow a single connection to be established with a remotely managed system to control that system from power on through operating system load, with a single user interface for remote management throughout this period and without requiring unique management software at the remote console.